1. Field
The present invention relates to modeling and testing digital designs of state machines, and more specifically, to systems, methods and computer products for optimizing netlist representations to aid in logic design and verification.
2. Background
Computerized system modeling is useful in optimizing and improving the design of electrical circuits and other systems that include state holding elements. Such systems may be modeled using state equations and state variables that describe the behavior and state of the system. A complete set of state variables for a system typically contains enough information about the system's history to enable computation of the system's future behavior. Computer-aided design (CAD) modeling may be used in an effort to simplify a state equation model, reducing the number of state variables and lessening the computational cost of analyzing the model. CAD logic synthesis optimization techniques may be employed in an attempt to render smaller designs to enhance chip fabrication processes.
A number of techniques have been proposed for reducing the size of a structural design representation. One such technique, redundancy removal, attempts to identify gates in the design that have the same function and merge one into the other. Another technique is subexpression elimination, wherein selected logic expressions are rewritten in an attempt to enable a representation with fewer gates. For example, given two expressions—A&B&C and D&A&B—subexpression elimination would translate those to (A&B)&C and (A&B)&D. This enables the sharing of node (A&B) between both expressions, thus requiring a total of three 2-bit AND expressions vs. four. Another set of techniques attempts to rewrite portions of the logic as alternative structure using fewer gates. However, such subexpression elimination algorithms tend to be limited in scope as they optimize the logic “locally” at only a few levels deep, or are limited to portions with a set number of inputs to compensate for the computational expense of investigating a greater set of choices.
What is needed is an efficient way to rewrite portions of the logic in a structural design representation.